package com.hospital.workstation.domain.bo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hospital.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 患者基本信息业务对象 patient_base_info
 *
 * @author whb
 * @date 2023-02-08
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class PatientBaseInfoBo extends BaseEntity {

    /**
     * 患者ID
     */
    private Long id;

    /**
     * 患者姓名
     */
    private String patientName;

    /**
     * 病历号
     */
    private Integer medicalRecordNo;

    /**
     * 就诊号码（HIS中就诊唯一标识）
     */
    private String paadmVisitNo;

    /**
     * ID号
     */
    private String patientNo;

    /**
     * 科室/病区ID
     */
    private Long deptId;

    /**
     * 入院时间
     */
    private LocalDateTime admissionTime;

    /**
     * 出院时间
     */
    private LocalDateTime dischargeTime;

    /**
     * 主管医生
     */
    private Long doctorId;

    /**
     * 临床药师名称
     */
    private String doctorName;

    /**
     * 床号
     */
    private String bedNo;

    /**
     * 第一诊断
     */
    private String firstDiagnose;

    /**
     * 监护分级（0一级 1二级 2三级）
     */
    private String guardianLevel;

    /**
     * 住院状态（0住院患者 1出院患者）
     */
    private String patientState;

    /**
     * 患者性别（1男 2女 3未知）
     */
    private String patientSex;

    /**
     * 年龄
     */
    private Integer patientAge;

    /**
     * 月份
     */
    private Integer patientMonth;

    /**
     * 出生日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthdate;

    /**
     * 职业
     */
    private String patientProfession;

    /**
     * 民族
     */
    private String nation;

    /**
     * 身高（cm）
     */
    private BigDecimal patientHeight;

    /**
     * 体重（kg）
     */
    private BigDecimal patientWeight;

    /**
     * BMI（kg/㎡）
     */
    private BigDecimal patientBmi;

    /**
     * 联系方式
     */
    private String phoneNo;

    /**
     * 付费方式（0支付宝 1微信 2现金 07全自费）
     */
    private String payWay;

    /**
     * 患者信息来源（0手工录入 1HIS）
     */
    private String sourceInfo;

    /**
     * 入院次数
     */
    private String visitTimes;

    /**
     * 病案号
     */
    private String medicareNo;

    /**
     * HIS科室代码
     */
    private String paadDeptCode;

    /**
     * 入院病区代码
     */
    private String medicareWardCode;

    /**
     * 移除历史药历，传值0
     */
    private String moveHistory;

    /**
     * 用户昵称
     */
    private String nickName;

    /**
     * 药历完成状态（0未完成 1已完成）
     */
    private String summaryState;

    /**
     * 病名
     */
    private String illnessName;
}
